package com.weibotwo.dao;

import com.weibotwo.pojo.Message;
import com.weibotwo.pojo.User;

import java.util.List;

/**
 * @ClassName FriendMapper
 * @Author 天火
 * @Date 2019-03-12
 * @Version 1.0
 */
public interface FriendMapper {

    /**
     * 查询用户ID
     * @param uId
     * @return
     */
    List<Long> findFriendByuId(Long uId);

    /**
     * 查询关注用户数量
     * @param id
     * @return
     */
    int findAttentionNumByUserId(long id);

    /**
     * 查询的所有好友信息
     * @param uId
     * @return
     */
    List<User> findAttUser (Long uId);

    /**
     * 关注用户
     * @param uId
     * @param bUserId
     */
    void addAttentionUser(Long uId, Long bUserId);

    /**
     * 取消关注用户
     * @param uId
     * @param bUserId
     */
    void unsubscribeUser( Long uId, Long bUserId);

    /**
     * //拉黑好友
     * @param aId
     * @param bId
     * @param state
     */
    void updateFriendToBlack(long aId,long bId,int state);



    /**
     * //设置关注好友状态为99
     * @param aId
     * @param bId
     * @param state
     */
    void updateFriendState(long aId,long bId,int state);

    /**
     * 查询消息记录
     * @param aId 交流者1
     * @param bId 交流着2
     * @return
     */
    List<Message> findUserMessageByUserId(Long aId, Long bId);

    /**
     * 根据用户Id查询跟他有过消息记录所有用户
     * @param uId
     * @return
     */
    List<User> findUserByUserId(Long uId);

    /**
     * 查询未读私信记录数
     * @param aId 发送消息段
     * @param bId 接受消息段
     * @return
     */
    int findUnReadMessageByUserId(Long aId, Long bId);

    int findUnreadMNum(Long uId);

    /**
     * 设置私信已读
     * @param aId
     * @param bId
     */
    void setMessageRead(Long aId,Long bId);

    /**
     * a发消息给b查询b用户是否把a用户拉黑
     * @param aId
     * @param bId
     * @return
     */
    Long findFriendState(Long aId, Long bId);

    /**
     * 插入新的消息记录
     * @param message
     */
    void insertMessage(Message message);

    List<User> findFansByUserId(Long uId);

    List<User> findBlacksUserByUserId(Long uId);

}
